package duppentity;

import com.google.gson.JsonObject;
import duppentity.annotations.Dupp;
import duppentity.annotations.Param;

/**
 * Description:
 * Author: pengpeng@djcars.cn
 * Date: 2019/12/10 9:57
 */

public interface MerchantDupp {

    /**
     * 商家账号
     */
    @Dupp("mng.sysAdmin.getList")
    JsonObject getMerchantList(@Param("type") Integer type,
                                                 @Param("offset") Integer offset,
                                                 @Param("count") Integer count);

    @Dupp("sysAdmin.addSubAccount")
    JsonObject saveMerchant(@Param("type") Integer type,
                                             @Param("name") String name,
                                             @Param("mobile") String mobile,
                                             @Param("parentId") Long parentId,
                                             @Param("createBy") Long createBy);

    @Dupp("sysAdmin.getListByParentId")
    JsonObject getListByParentId(@Param("parentId") Long parentId,
                                                   @Param("isAdmin") Integer isAdmin,
                                                   @Param("offset") Integer offset,
                                                   @Param("count") Integer count);

    /**
     * 账号状态 使失效/有效
     */
    @Dupp("sysAdmin.updateInvalid")
    JsonObject updateInvalid(@Param("id") Long id,
                                              @Param("invalid") Integer invalid,
                                              @Param("modifyBy") Long modifyBy);
    /**
     * 商家的优惠券配置
     */
    @Dupp("mng.buMerchantCoupon.getList")
    JsonObject getMerchantCouponList(@Param("merchantId") Long merchantId,
                                                             @Param("offset") Integer offset,
                                                             @Param("count") Integer count);


    @Dupp("buMerchantCoupon.create")
    JsonObject saveMerchantCoupon(@Param("merchantId") Long merchantId,
                                                          @Param("couponId") Long couponId,
                                                          @Param("invalid") Integer invalid,
                                                          @Param("orderIndex") Integer orderIndex,
                                                          @Param("createBy") Long createBy);

    /**
     * 优惠券 使失效/有效
     */
    @Dupp("buMerchantCoupon.updateInValid")
    JsonObject updateCouponInValid(@Param("id") Long id,
                                                          @Param("invalid") Integer invalid,
                                                          @Param("modifyBy") Long modifyBy);

    /**
     * 商家优惠券列表(派发概览)
     */
    @Dupp("mng.buMerchantCoupon.getList")
    JsonObject getAllMerchantCouponList(@Param("merchantId") Long merchantId,
                                                                  @Param("name") String name,
                                                                  @Param("offset") Integer offset,
                                                                  @Param("count") Integer count);

    @Dupp("mng.buCouponUser.getList")
    JsonObject getCouponUserList(@Param("dispatchUserName") String dispatchUserName,
                                                      @Param("mobile")String mobile,
                                                      @Param("couponId")Long couponId,
                                                      @Param("startCreateTime") String startCreateTime,
                                                      @Param("endCreateTime") String endCreateTime,
                                                      @Param("startUseTime") String startUseTime,
                                                      @Param("endUseTime") String endUseTime,
                                                      @Param("startDonateTime") String startDonateTime,
                                                      @Param("endDonateTime") String endDonateTime,
                                                      @Param("offset") Integer offset,
                                                      @Param("count") Integer count);

    /**
     * 商家优惠券日统计表
     */
    @Dupp("buCouponDayStat.getListByMonth")
    JsonObject getListByMonth(@Param("couponId") Long couponId,
                                                 @Param("year") Integer year,
                                                 @Param("month") Integer month,
                                                 @Param("offset") Integer offset,
                                                 @Param("count") Integer count);

    /**
     * 商家优惠券月统计表
     */
    @Dupp("buCouponMonthStat.getListByYear")
    JsonObject getListByYear(@Param("couponId") Long couponId,
                                             @Param("year") Integer year,
                                             @Param("offset") Integer offset,
                                             @Param("count") Integer count);
}
